HOSTS_OPTIONS(5) | File Formats Manual | HOSTS_OPTIONS(5) |
NAME¶
hosts_options - ホストアクセスコントロールの拡張書式
DESCRIPTION¶
この文書は、hosts_access(5) で説明する文法のオプショナルな拡張に ついて解説するものである。この拡張は、プログラムをコンパイルした 際に利用の可否が決まる。例えば、Makefile を編集し、コンパイル時 に PROCESS_OPTIONS を有効にした場合である。
拡張書式はこのような形式である:
daemon_list : client_list : option : option ...
最初のふたつのフィールドについては、hosts_access(5) のマニュアル で解説されている。ルールの残りの部分は、0 個以上のオプションの列 である。オプションの中では、すべての ":" という文字はバックスラッ シュによって保護される必要がある。
オプションは "keyword" または "keyword value" の形式をとる。オプ ション群は記述された順に解釈される。いくつかのオプションは %<letter> による置き換えを仮定している。初期のバージョンとの互換 性のために、"=" を keyword と value(値) の間におく事も許されてい る。
LOGGING (ログの記録)¶
- severity mail.info
- severity notice
- イベントをログに記録する severity("激しさ") のレベルを変更する。 Facility names (供される利便の項目、たとえば mail) は任意であり、 古い syslog の実装ではサポートされていない。severity オプション は、指示されたイベントを強調するか、あるいは無視するために有意で ある。
ACCESS CONTROL (アクセスの可否)¶
allow と deny は、すべてのアクセスコントロールのルー ルを、ただひとつのファイル、たとえばhosts.allow に納める事 を可能にしている。
明示されたホストだけにアクセスを許可するには:
ALL: .friendly.domain: ALLOW ALL: ALL: DENY
トラブルメイカーとなる、いくつかのホストを除いて、すべてのホスト からのアクセスを許可するには:
ALL: .bad.domain: DENY ALL: ALL: ALLOW
ドメイン名のパターンの最初にはドットがついている事に注目されたい。
RUNNING OTHER COMMANDS (外部コマンドの実行)¶
- spawn shell_command
- hosts_access(5)
のマニュアルで解説される
%<letter> の置き換えが
実行されたのちに、子プロセスで、指定のシェルコマンドを実行する。
コマンドは標準入力、標準出力、そして標準エラー出力を
null デバイ
スに繋げた状態で実行される。したがって、これによってクライアント
ホストとの会話が混乱するようなことはない。例えば:
spawn (/some/where/safe_finger -l @%h | /usr/ucb/mail root) &
これは、%h を リモートホストの名前またはアドレスに置き換えたのち に、バックグラウンドの子プロセスで、シェルコマンド "safe_finger -l @%h | mail root" を実行する。
この例では、(リモートの) finger サーバーから送られてくるデータに よって、ダメージがもたらされる可能性を抑えるため、標準の "finger" コマンドに代わって "safe_finger" コマンドを利用している。 この "safe_finger" コマンドは、daemon wrapper package に含まれて いる。これは、標準の finger の露払いとして、リモートホストから送 られるデータをフィルタリングする。
- twist shell_command
- hosts_access(5)
のマニュアルで解説される
%<letter> の置き換えが
実行されたのちに、現在のプロセスを、要求されたシェルコマンドで置
き換える。標準入力、標準出力そして標準エラー出力は、クライアント
のプロセスに接続される。このオプションはルールの最後に記述する必
要がある。
実際の ftp デーモンに代わって、メッセージを変更してクライアント に返すには:
in.ftpd : ... : twist /bin/echo 421 Some bounce message
クライアントプロセスと会話する別の方法として、後述する banners オプションを参照されたい。
/some/other/in.telnetd を、コマンドラインの引数やプロセスの環境 変数によって汚染されることなく実行するには:
in.telnetd : ... : twist PATH=/some/other; exec in.telnetd
警告: UDP サービスにおいては、standard I/O の利用、またはクライ アントプロセスとの交信のための read(2)/write(2) ルーチンと、 command を混同しないように; UCP は、また別の基本的な I/O を必要 とする。
NETWORK OPTIONS (ネットワークに関するオプション)¶
- keepalive
- 定期的にサーバーはクライアントにメッセージを送るようになる。もし、 クライアントからの応答がない場合、接続は切断されたものと見なされ る。この keepalive オプションは、ユーザーがサーバーに継っている 間に、マシンの電源を切った時に有用である。keepalive オプションは datagram (UDP) services には役に立たない。
- linger number_of_seconds
- サーバーのプロセスが接続を切断したのち、カーネルが未配送データの 再送を試みる時間を指示する。
USERNAME LOOKUP (ユーザー名の問い合わせ)¶
- rfc931 [ timeout_in_seconds ]
- RFC 931 (TAP, IDENT, RFC 1413) にしたがう形で、クライアントユー ザー名を問い合わせる。サービスが TCP 以外の転送方法に基づいてい る場合は、このオプションは黙って無視される。この方法はクライアン トのシステムが RFC 931 と互換性のあるデーモン (IDENT など) を走 らせていることが条件で、non-UNIX のクライアントからの接続に対し ては、著しく遅くなるだろう。timeout までの秒数は任意である。 timeout が指示されない場合、コンパイル時に決められた初期値が使わ れる。
MISCELLANEOUS (その他の事項)¶
- `/some/directory'
の中で、デーモンプロセスの名前と一致するファイ
ル (たとえば、telnet
サービスなら
in.tenletd)を探し、その内容を
クライアントに対してコピーする。改行文字は、CR(carriage-return)
改行文字に置き換えられ、%<letter>
は展開される (hosts_access(5)
のマニュアルを参照)。
tcp wrapper の配布ソースには、手際よく banner を保守するための、 サンプルの makefile (Banners.Makefile) が含まれている。
警告: banners は connection-oriented (TCP) network (コネクション に指向の高いサービス)でのみ利用する事ができる。
- nice [ number ]
- プロセスの nice 値を変更する(初期値は 10)。他のプロセスに、より 多くの CPU 資源を割り当てるには、正の値を指示する。
- setenv name value
- (name, value)
のペアをプロセスの環境変数に設定する。value
は %<letter>
への展開があるものと仮定され、ホワイトスペースの利用は
自制する必要があるだろう(ただし、前後の空白は切り捨てられる)。
警告: 多くのネットワークデーモンは login または shell プロセスを 再起動する前に、その環境変数をリセットする。
- umask 022
- シェルのビルトインコマンド umask と似た機能。022 の umask は、 group と world による書き込み禁止措置によって、ファイルの作成を 予防する。umask の引数は 8 進数でなければならない。
- user nobody
- user nobody.kmem
- ユーザー "nobody" (またはユーザー "nobody", グループ "kmem")は、 特別な扱いとみなす。最初の形式は、root 権限で全てのサービスを実 行するような inetdの実装で有用である。二番目の形式は、グループの 権限のみが必要なサービスのために有用である。
DIAGNOSTICS¶
アクセスコントロールルールに文法エラーが発見された場合、エラーは syslog デーモンへ報告される。余計なオプションは無視され、サービ スは拒否される。
SEE ALSO¶
hosts_access(5), 基本的なアクセスコントロール書式
AUTHOR¶
Wietse Venema (wietse@wzv.win.tue.nl) Department of Mathematics and Computing Science Eindhoven University of Technology Den Dolech 2, P.O. Box 513, 5600 MB Eindhoven, The Netherlands
翻訳者¶
FUKUSHIMA Osamu/福島於修 <fuku@amorph.rim.or.jp>